<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html">

    <body>

        <ui:composition template="./../../WEB-INF/templates/MainTemplate.xhtml">

            <ui:define name="bar">
                <h:form id="barForm">
                    <p:panel id="barFormPanel" styleClass="noMargin noPadding noBorder">
                        <p:commandButton styleClass="actionButton" id="nuevoPedidoButton" value="#{messages.NuevoPedido}" actionListener="#{nuevoPedidoBean.reinitPedido()}" oncomplete="dialogoNuevoPedido.show();"></p:commandButton>
                        <p:commandButton styleClass="actionButton" id="editarPedidoButton" disabled="#{listadoPedidosBean.entidadElegida==null}" value="#{messages.EditarPedido}" action="#{listadoPedidosBean.irAEditar()}" actionListener="#{listadoPedidosBean.elegirEntidad()}"></p:commandButton>
                        <p:commandButton styleClass="actionButton" ajax="false" id="excelPedidoButton" disabled="#{listadoPedidosBean.entidadElegida==null}" value="Excel" action="#{excelPedidoBean.hacerExcel()}" actionListener="#{listadoPedidosBean.elegirEntidad()}"></p:commandButton>
                        <p:commandButton styleClass="actionButton" id="estadoPedidoButton" disabled="#{listadoPedidosBean.entidadElegida==null}" value="Estado" action="#{listadoPedidosBean.irAEstado()}" actionListener="#{listadoPedidosBean.elegirEntidad()}"></p:commandButton>
                        <p:commandButton styleClass="actionButton" id="nuevaFacturaPedidoButton" disabled="#{listadoPedidosBean.entidadElegida==null}" value="Factura" action="#{listadoPedidosBean.irANuevaFactura()}" actionListener="#{listadoPedidosBean.elegirEntidad()}"></p:commandButton>
                        <p:commandButton styleClass="actionButton" id="listadoFacturasPedidoButton" update=":dialogoForm:facturasPanel" disabled="#{listadoPedidosBean.entidadElegida==null}" value="ListadoFactura" onsuccess="dialogoFacturas.show();" actionListener="#{listadoPedidosBean.elegirEntidad()}"></p:commandButton>
                    </p:panel>
                </h:form>
            </ui:define>

            <ui:define name="dialogs">
                <h:form id="dialogoForm">
                    <p:dialog modal="true" id="dialogoNuevoPedido" widgetVar="dialogoNuevoPedido"  header="#{messages.NuevoPedido}">
                        <h:panelGrid columns="4">
                            <p:outputLabel for="cliente" value="#{messages.Cliente}"></p:outputLabel>
                            <p:selectOneMenu converter="#{clienteConverter}" id="cliente" required="true" value="#{nuevoPedidoBean.nuevoPedido.cliente}" label="#{messages.Cliente}">
                                <f:selectItem itemLabel="#{messages.SeleccionaCliente}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.clientes}" var="cliente" itemLabel="#{cliente.nombre}" itemValue="#{cliente}"></f:selectItems>
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="formaPago" value="#{messages.FormaPago}"></p:outputLabel>
                            <p:selectOneMenu converter="#{formaPagoConverter}" id="formaPago" required="true" value="#{nuevoPedidoBean.nuevoPedido.formaPago}" label="#{messages.FormaPago}">
                                <f:selectItem itemLabel="#{messages.SeleccionaFormaPago}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.formasPago}" var="formaPago" itemLabel="#{formaPago.descripcion}" itemValue="#{formaPago}"></f:selectItems>
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="resto" value="#{messages.Resto}"></p:outputLabel>
                            <p:selectOneMenu converter="#{restoConverter}" id="resto" required="true" value="#{nuevoPedidoBean.nuevoPedido.resto}" label="#{messages.Resto}">
                                <f:selectItem itemLabel="#{messages.SeleccionaResto}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.restos}" var="resto" itemLabel="#{resto.descripcion}" itemValue="#{resto}"></f:selectItems>
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="descuento" value="#{messages.Descuento}"></p:outputLabel>
                            <p:inputText id="descuento" value="#{nuevoPedidoBean.nuevoPedido.descuento}"></p:inputText>
                            
                            <p:outputLabel for="adelanto" value="#{messages.Adelanto}"></p:outputLabel>
                            <p:inputText required="true" id="adelanto" value="#{nuevoPedidoBean.nuevoPedido.adelanto}"></p:inputText>

                            <p:outputLabel for="fechaEntrega" value="#{messages.FechaEntrega}"></p:outputLabel>
                            <p:calendar locale="es" showButtonPanel="true" navigator="true" value="#{nuevoPedidoBean.nuevoPedido.fechaEntrega}" id="fechaEntrega"/>
                            
                            <p:outputLabel for="fechaFinEntrega" value="#{messages.FechaFinEntrega}"></p:outputLabel>
                            <p:calendar locale="es" showButtonPanel="true" navigator="true" value="#{nuevoPedidoBean.nuevoPedido.fechaFinEntrega}" id="fechaFinEntrega"/>

                            <p:outputLabel for="contacto" value="#{messages.Contacto}"></p:outputLabel>
                            <p:inputText id="contacto" value="#{nuevoPedidoBean.nuevoPedido.contacto}"></p:inputText>
                            
                            <p:outputLabel for="aCuenta" value="#{messages.ACuenta}"></p:outputLabel>
                            <p:inputText id="aCuenta" value="#{nuevoPedidoBean.nuevoPedido.entregadoACuenta}"></p:inputText>

                            <p:outputLabel for="porte" value="#{messages.Porte}"></p:outputLabel>
                            <p:inputText id="porte" value="#{nuevoPedidoBean.nuevoPedido.precioPorte}"></p:inputText>
                            
                            <p:outputLabel for="comentarios" value="#{messages.Comentarios}"></p:outputLabel>
                            <p:inputTextarea id="comentarios" value="#{nuevoPedidoBean.nuevoPedido.comentarios}"></p:inputTextarea>
                           
                        </h:panelGrid>
                        <p:commandButton process="@parent" update=":pedidoForm:pedidoGrowl :pedidoForm:pedidos" value="#{messages.Crear}" action="#{nuevoPedidoBean.crearPedido()}"></p:commandButton>
                    </p:dialog>
                    
                    <p:dialog modal="true" id="dialogoFacturas" widgetVar="dialogoFacturas" header="#{messages.Facturas}">
                        <p:panel id="facturasPanel" styleClass="noMargin noBorder noPadding">
                            <p:commandLink process=":dialogoForm:facturasPanel" id="editarFacturaButton" disabled="#{listadoFacturasMultimarcaBean.entidadElegida==null}" value="#{messages.EditarFactura}" action="#{listadoFacturasMultimarcaBean.irAEditar()}" actionListener="#{listadoFacturasMultimarcaBean.elegirEntidad()}"></p:commandLink>
                            <p:dataTable emptyMessage="#{messages.NoFacturas}" resizableColumns="true" selectionMode="single" liveScroll="true" scrollable="true" scrollRows="50" scrollHeight="600" id="facturas" var="factura" rowKey="#{factura.idFacturaMultimarca}" selection="#{listadoFacturasMultimarcaBean.entidadElegida}" value="#{listadoFacturasMultimarcaBean.pedido.facturaMultimarcaList}">
                                <p:ajax event="rowSelect" update=":barForm:barFormPanel :dialogoForm:facturasPanel" listener="#{listadoFacturasMultimarcaBean.seleccionarEntidad()}"/> 
                                <p:ajax event="rowUnselect" update=":barForm:barFormPanel :dialogoForm:facturasPanel" listener="#{listadoFacturasMultimarcaBean.deseleccionarEntidad()}"/>
                                <p:column headerText="#{messages.Identificador}" filterBy="#{factura.identificador}" filterMatchMode="startsWith" width="200">
                                    <h:outputText value="#{factura.identificador}"></h:outputText> 
                                </p:column>
                                <p:column headerText="#{messages.Total}" filterBy="#{factura.total}" filterMatchMode="startsWith" width="200">
                                    <h:outputText value="#{factura.total}">
                                        <f:convertNumber maxFractionDigits="2" minFractionDigits="2"></f:convertNumber>
                                    </h:outputText> 
                                </p:column>
                                <p:column headerText="#{messages.Fecha}" filterBy="#{factura.fecha}" filterMatchMode="startsWith" width="200">
                                    <h:outputText value="#{factura.fecha}">
                                        <f:convertDateTime pattern="dd/MM/yyyy"/>
                                    </h:outputText> 
                                </p:column>
                            </p:dataTable>
                        </p:panel>
                    </p:dialog>
                </h:form>
            </ui:define>
            <ui:define name="content">
                <h:form id="pedidoForm">
                    <p:growl autoUpdate="true" life="4000" id="pedidoGrowl"></p:growl>
                    <p:dataTable emptyMessage="#{messages.NoPedidos}" resizableColumns="true" selectionMode="single" liveScroll="true" scrollable="true" scrollRows="50" scrollHeight="600" id="pedidos" var="pedido" rowKey="#{pedido.idPedido}" selection="#{listadoPedidosBean.entidadElegida}" value="#{listadoPedidosBean.listadoEntidades}">
                        <p:ajax event="rowSelect" update=":barForm:barFormPanel" listener="#{listadoPedidosBean.seleccionarEntidad()}"/> 
                        <p:ajax event="rowUnselect" update=":barForm:barFormPanel" listener="#{listadoPedidosBean.deseleccionarEntidad()}"/>
                        <p:column sortBy="#{pedido.cliente.nombre}" headerText="#{messages.Cliente}" filterBy="#{pedido.cliente.nombre}" filterMatchMode="startsWith" width="200">
                            <h:outputText value="#{pedido.cliente.nombre}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{pedido.fechaCreacion}" headerText="#{messages.FechaPedido}" width="80">
                            <h:outputText value="#{pedido.fechaCreacion}">
                                <f:convertDateTime pattern="dd/MM/yyyy"/>
                            </h:outputText> 
                        </p:column>
                        <p:column sortBy="#{pedido.fechaEntrega}" headerText="#{messages.FechaEntrega}" width="80">
                            <h:outputText value="#{pedido.fechaEntrega}">
                                <f:convertDateTime pattern="dd/MM/yyyy"/>
                            </h:outputText> 
                        </p:column>
                        <p:column sortBy="#{listadoPedidosBean.getTotal(pedido)}" headerText="#{messages.Compra}" width="70">
                            <h:outputText value="#{listadoPedidosBean.getTotal(pedido)}">
                                <f:convertNumber maxFractionDigits="2" minFractionDigits="2"/>
                            </h:outputText> 
                            <h:outputText value="#{pedido.cliente.paisFiscal.signoMoneda}"></h:outputText>
                        </p:column>
                        <p:column sortBy="#{pedido.unidades}" headerText="#{messages.Unidades}" width="50">
                            <h:outputText value="#{pedido.unidades}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{pedido.contacto}" headerText="#{messages.Contacto}" width="100">
                            <h:outputText value="#{pedido.contacto}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{pedido.estado.idEstadoPedido}" filterBy="#{pedido.estado.descripcion}" filterMatchMode="startsWith" headerText="#{messages.Estado}" width="120">
                            <h:outputText value="#{pedido.estado.descripcion}"></h:outputText> 
                        </p:column>
                    </p:dataTable>
                </h:form>
            </ui:define>
        </ui:composition>
    </body>
</html>
